package com.itany.shop.util;

import com.itany.shop.exception.MD5ErrorException;
import sun.misc.BASE64Encoder;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.Connection;
import java.sql.PreparedStatement;

/**
 * @Author:石小俊
 * @Date:2022/11/15 16:03
 * @Version:1.0-SNAPSHOT
 * @Description:
 */
public class MD5Util {

    public static String md5(String password){
        try {
            // 静态工厂实例化对象
            MessageDigest md = MessageDigest.getInstance("MD5");
            // 获取加密前字符串的byte数组
            byte[] passwordBytes = password.getBytes();
            // 将byte数组交给加密工具,进行加密
            // 加密后返回的仍然是一个byte数组
            byte[] b = md.digest(passwordBytes);
            // 该方式会出现乱码字符
            // return new String(b);
            // 可以使用sun公司内部一个API
            BASE64Encoder encoder = new BASE64Encoder();
            return encoder.encode(b);
        } catch (NoSuchAlgorithmException e) {
            throw new MD5ErrorException("MD5加密出错");
        }
    }

    public static void main(String[] args) {
        System.out.println(md5("admin"));
    }
}
